home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Format / ascii2fax / char_util.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.1 KB  |  65 lines

  1. /* char_util.c: utility routines for chars */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Format/ascii2fax/RCS/char_util.c,v 6.0 1991/12/18 20:15:19 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Format/ascii2fax/RCS/char_util.c,v 6.0 1991/12/18 20:15:19 jpo Rel $
  9.  *
  10.  * $Log: char_util.c,v $
  11.  * Revision 6.0  1991/12/18  20:15:19  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include     "fonts.h"
  17.  
  18. extern BitMap    file2bitmap();
  19.  
  20. CharPtr
  21. new_char()
  22. {
  23.     return (CharPtr) calloc(1, sizeof(Char));
  24. }
  25.  
  26. free_char(c)
  27. CharPtr    c;
  28. {
  29.     if (c -> bits)
  30.         free_bitmap(c->bits, c->wid, c->ht);
  31.     free((char *)c);
  32. }
  33.  
  34. char2file(fp, c)
  35. FILE    *fp;
  36. CharPtr    c;
  37. {
  38.     fprintf(fp, "%d\n", c->ascii);
  39.     bitmap2file(fp, c->bits, c->wid, c->ht);
  40. }    
  41.  
  42. CharPtr
  43. file2char(fp)
  44. FILE    *fp;
  45. {
  46.     char    buf[BUFSIZ];
  47.     CharPtr    ret;
  48.  
  49.     if (fgets(buf, BUFSIZ, fp) == NULLCP) {
  50.         fprintf(stderr,
  51.             "Incorrect file encoding of bitmap: unexpected EOF\n");
  52.         return (CharPtr) NOTOK;
  53.     }
  54.     
  55.     ret = new_char();
  56.     ret->ascii = (int) strtol(buf, NULL, 0);
  57.     if ((ret->bits = file2bitmap(fp, &(ret->wid), &(ret->ht))) == (BitMap) NOTOK) {
  58.         ret->bits = NULL;
  59.         free_char(ret);
  60.         return (CharPtr) NOTOK;
  61.     }
  62.     return ret;
  63. }
  64.  
  65.